// 按需导入 api/user 中的 getUserAPI 获取用户信息方法

import { getUserAPI } from '@/api/user'

export default {
  namespaced: true, // 开启命名空间
  state() {
    return {
      token: '',
      user: {} // 准备存用户信息的
    }
  },

  mutations: {
    // 存 token 值
    updataToken(state, val) {
      state.token = val
    },
    // 更新用户信息方法
    updateUser(state, val) {
      state.user = val
    }
  },

  // 因为 axios 发送请求是 异步的 要 放在  actions 里
  actions: {
    // 获取用户信息
    async getUser(store) {
      // 这里，调用 api/user.js 中的 getUserAPI 方法，获取用户信息
      const { data: res } = await getUserAPI()
      // console.log(res) // 服务器返回的结果
      // 在一个模块 前面不需要写 模块名
      // 服务端结果  的 code ===  0 说明获取成功 ， 接口提供的 在赋值给 state 的 user 存在 Vuex 数据里面 好使用 调用
      if (res.code === 0) store.commit('updateUser', res.data)
    }
  }
}
